// 书写webpack
// webpack 基于nodejs环境
var HtmlWebpackPlugin = require('html-webpack-plugin');
var path = require("path");
module.exports = {
  // 入口
  // entry: "./main.js",
  entry: {
    main: "./main.js"
  },
  //模式  development 开发模式     生产模式（线上模式）production
  mode: "development",
  // 输出
  output: {
    path: path.resolve(__dirname, 'dist'), //打包后的输出到哪个文件夹
    filename: "mybundel.js" //打包后的文件名
  },
  //loader  
  module: {
    rules: [
      //  es6 解析成es5的loader   babel-loader 
      {
        test: /\.m?js$/,  // 使用正则匹配到所有的.js 或.min.js 文件
        exclude: /(node_modules|bower_components)/, //排除node_modules中的文件
        use: {
          loader: 'babel-loader',
          options: { //配置项 是babel 官方给的配置项
            presets: ['@babel/preset-env']
          }
        }
      },
      // 配置能让webpack识别css的loader  style-loader css-loader
      {
        test: /\.css$/i,
        use: ['style-loader', 'css-loader']
      },
      // url-loader 用来解析图片
      {
        test: /\.(png|jpg|gif)$/,
        use: [
          {
            loader: 'url-loader',
            options: {  //options 对每个loader进行额外配置
              limit: 8192
            }
          }
        ]
      },
      // file-loader 解析文件路径的loader
      {
        test: /\.(png|jpe?g|gif|map4|map3)$/i,
        use: [
          {
            loader: 'file-loader',
          }
        ],
      }
    ]
  },

  //插件
  plugins: [
    new HtmlWebpackPlugin({
      // title: '今日头条',
      // template: 'entries/index.html', // 源模板文件
      // filename: './index.html', // 输出文件【注意：这里的根路径是module.exports.output.path】
      // inject: 'body'
    })
  ]

}